package com.link.base.wechat.wxplatform.dao.mybatis.mapper;

import com.link.base.base.enterprise.model.Enterprise;
import com.link.base.wechat.wxplatform.model.WxPlatform;
import com.link.core.basic.dao.mapper.BasicMapper;

import java.util.List;

/**
 * 微信公众号管理
 *
 * @author 欧阳振强
 * @date 2019/02/27 14:51
 */
public interface WxPlatformMapper extends BasicMapper<WxPlatform> {

    /**
     * 查询公众号记录，基于公众号应用Id
     *
     * @author ouyangzhenqiang
     * @date 2019/02/27 15:13
     * @param record 公众号对象
     */
    WxPlatform getWxPlatformByAppId(WxPlatform record) throws Exception;

    /**
     * 查询公众号记录，基于公众号原始Id
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 14:11
     * @param record 公众号对象
     */
    WxPlatform getWxPlatformByOgId(WxPlatform record) throws Exception;

    /**
     * 查询微信公众号无corpId限制
     *
     * @author ouyangzhenqiang
     * @date 2019/02/27 15:28
     */
    List<WxPlatform> queryAllNoCorp() throws Exception;

    /**
     * 更新公众号有效无效字段
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 09:54
     * @param record 公众号对象
     */
    void validFlagWxppUpdate(WxPlatform record) throws Exception;

    /**
     * 去除当前默认公众号的主要标识
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 10:57
     * @param record 公众号对象
     */
    void cancelDefaltFlag(WxPlatform record) throws Exception;
    
    /**
     * 根据公众号记录Id设置该记录的主要公众号标识
     * 
     * @author ouyangzhenqiang
     * @date 2019/02/28 10:58
     * @param record 公众号对象
     */
    void defaultFlagWxppUpdate(WxPlatform record) throws Exception;

    /**
     * 查询所有的授权标识为Y的公众号记录
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 10:00
     * @param record 公众号对象
     */
    List<WxPlatform> queryAuthPage(WxPlatform record) throws Exception;

    /**
     * 根据所属公司Id，查询默认的微信公众号
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 13:49
     * @param record 公众号对象
     */
    WxPlatform countDefaultFlag(WxPlatform record) throws Exception;

    /**
     * 根据corp_id查询默认的微信公众号
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 13:49
     * @param record 公众号对象
     */
    WxPlatform queryDefaultByCorpid(WxPlatform record) throws Exception;

    /**
     * 更新公众号授权标识，基于公众号Id和corpId
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 14:02
     * @param record 公众号对象
     */
    void grantAuthFlagUpdateCancel(WxPlatform record) throws Exception;

    /**
     * 新建公众号记录
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 14:12
     * @param record 公众号对象
     */
    void insertConsumerOfficialAccounts(WxPlatform record) throws Exception;

    /**
     * 根据企业code查询企业Id等信息
     *
     * @author ouyangzhenqiang
     * @date 2019/02/28 14:13
     * @param record 企业对象
     */
    Enterprise queryEnterpriseIdByCode(Enterprise record) throws Exception;

    /**
     * 公众号授权 更新公众号信息，该方法不走拦截器
     *
     * @author LiYang
     * @date 2019/03/07 15:52
     * @param record
     */
    public void wxPlatformUpdateByInterface(WxPlatform record) throws Exception;
}

